package com.huellas.negocio;

import java.util.Collection;

import com.huellas.bean.CatalogoTareaBean;
import com.huellas.bean.CitaBean;
import com.huellas.bean.CitaCatalogoBean;
import com.huellas.bean.EstadoCitaBean;
import com.huellas.bean.PacienteBean;
import com.huellas.bean.UsuarioBean;
import com.huellas.dao.CitaCatalogoDAO;
import com.huellas.excepcion.DAOExcepcion;

public class GestionCitaCatalogo {

	//Metodo para crear una cita de vacuna
	public void insertarCitaCatalogo(int CoCita, String FeCita, String FeHora, String FlTipoCita, int CoEstadoCita, int CoPaciente, int CoDoctor, int CoCatalogoTarea) throws DAOExcepcion{
				
		EstadoCitaBean estadoCitaBean = new EstadoCitaBean();
		estadoCitaBean.setCoEstadoCita(CoEstadoCita);
			
		PacienteBean pacienteBean = new PacienteBean();
		pacienteBean.setCoPaciente(CoPaciente);
		
		UsuarioBean usuarioBean = new UsuarioBean();
		usuarioBean.setCoUsuario(CoDoctor);
			
		CitaBean citaBean = new CitaBean();
		citaBean.setCoCita(CoCita);
		citaBean.setFeCita(FeCita);
		citaBean.setFeHora(FeHora);
		citaBean.setFlTipoCita(FlTipoCita);
		citaBean.setEstadoCitaBean(estadoCitaBean);
		citaBean.setPacienteBean(pacienteBean);
		citaBean.setUsuarioBean(usuarioBean);
				
		CatalogoTareaBean catalogoTareaBean = new CatalogoTareaBean();
		catalogoTareaBean.setCoCatalogoTarea(CoCatalogoTarea);
				
		CitaCatalogoBean citaCatalogoBean = new CitaCatalogoBean();
		citaCatalogoBean.setCitaBean(citaBean);
		citaCatalogoBean.setCatalogoTareaBean(catalogoTareaBean);
		
		GestionCita gestionCita = new GestionCita();
		gestionCita.insertarCita(CoCita, FeCita, FeHora, FlTipoCita, CoEstadoCita, CoPaciente, CoDoctor);
					
		CitaCatalogoDAO citaCatalogoDAO = new CitaCatalogoDAO();
		citaCatalogoDAO.insertarCitaCatalogo(citaCatalogoBean);
		
	}
	
	//Metodo para obtener el registro de tarea
	public Collection<CitaCatalogoBean> obtenerRegistroTarea(int CoCatalogoTarea, String FeCita, String FeHora, String FlTipoCita, int CoEstadoCita, int CoPaciente, int CoDoctor) throws DAOExcepcion{
		CitaCatalogoDAO citaCatalogoDAO = new CitaCatalogoDAO();
		return citaCatalogoDAO.obtenerRegistroCitaCatalogo(CoCatalogoTarea, FeCita, FeHora, FlTipoCita, CoEstadoCita, CoPaciente, CoDoctor);
	}
	
	//Metodo que valida el registro de una tarea existe
	public boolean validarRegistroTarea(int CoCatalogoTarea, String FeCita, String FeHora, String FlTipoCita, int CoEstadoCita, int CoPaciente, int CoDoctor) throws DAOExcepcion{
				
		boolean validar = false;
				
		Collection<CitaCatalogoBean> listaCitaCatalogo = this.obtenerRegistroTarea(CoCatalogoTarea, FeCita, FeHora, FlTipoCita, CoEstadoCita, CoPaciente, CoDoctor);
		System.out.println(listaCitaCatalogo.size());		
		if(listaCitaCatalogo.size() != 0){
			for (CitaCatalogoBean citaCatalogoBean : listaCitaCatalogo){
				if (FeCita.equals(citaCatalogoBean.getCitaBean().getFeCita()) && FeHora.equals(citaCatalogoBean.getCitaBean().getFeHora()) 
					&& FlTipoCita.equals(citaCatalogoBean.getCitaBean().getFlTipoCita()) && CoEstadoCita == citaCatalogoBean.getCitaBean().getEstadoCitaBean().getCoEstadoCita()
					&& CoPaciente == citaCatalogoBean.getCitaBean().getPacienteBean().getCoPaciente() && CoDoctor == citaCatalogoBean.getCitaBean().getUsuarioBean().getCoUsuario()){
							
					validar = false;
				}else{
					validar = true;
				}
			}
		}else{
			validar = true;
		}
				
		return validar;
	}
	
	//Metodo para ver vacunas programadas en calendario
	public Collection<CitaCatalogoBean> buscarCitaTarea(int CoCliente, String NoPaciente, String FeCita) throws DAOExcepcion{
		CitaCatalogoDAO citaCatalogoDAO = new CitaCatalogoDAO();
		return citaCatalogoDAO.buscarCitaCatalogo(CoCliente, NoPaciente, FeCita);
	}
}
